Analítica de datos aplicada a estudios sobre desarrollo

Análisis de Regresión

Sobre Mi

Puedes encontrarme en:

Proceso de analítica

Wickham, H. y otros (2023)

MÉTODOS MULTIVARIANTES

Modelos de analítica

Modelando datos

Lo primero es identificar el tipo de relación: lineal o no lineal

Correlación de Pearson, gráficos de dispersión simples o matricial.

Medidas bidimensionales

  • Covarianza: Mide el grado de asociación lineal entre dos variables. Los valores que toma dependen de las unidades de medida de las variables, no están acotados.
  • Correlación: Mide el grado de asociación lineal entre dos variables. Toma valores entre -1 y 1. El signo indica si la relación es positiva o negativa.
  • Gráfico de dispersión: Ilustra sobre cómo es la relación entre dos variables (la forma y la fuerza de la relación). Los datos son pares de medidas para cada individuo.

Correlación lineal

Otros tipos de asociación

Una Correlación de CERO no debe interpretarse como “No existe asociación”, solo permite concluir que no hay asociación lineal pero puede existir una relación de otro tipo. Por ejemplo, Salario Vs. Experiencia. Otro aspecto a considerar es la presencia de datos atípicos (“raros”) que puedan ser influyentes.

El entorno tidyverse

Flujo de trabajo

La gramática de las gráficas

Requiere de al menos 3 elementos:

  • Datos
  • aesthetics: variables.
  • geometría
ggplot(data = datos, aes(x = _, y = _)) +
  geom_point()

Ejemplo

Usemos un conjunto de datos estándar del paquete modelr

library(pacman)
p_load(tidyverse, broom, modelr, 
       skimr, corrplot)

datos <- heights 

Ahora explore el conjunto de datos usando las funciones glimpse() y skim() y discuta la salida

glimpse(datos)
skim(datos)

Haga un diagrama de dispersión estre la estatura y el peso, el ingreso y la edad, el ingreso y los años de educación por sexo

Diagramas de dispersión

ggplot(data = datos, aes(x = height, y = weight)) +
  geom_point() +
  labs(x = 'Estatura', y = 'Peso')

ggplot(data = datos, aes(x = income, y = age)) +
  geom_point(color = "lightblue", alpha=0.1) +
  labs(x = 'Ingreso', y = 'Edad') +
  theme_bw() 

ggplot(data = datos, aes(x = income, y = education)) +
  geom_point(color = "lightblue", alpha=0.1) +
  labs(x = 'Ingreso', y = 'Educación') +
  theme_bw() +
  facet_wrap(~sex, ncol = 2)

Correlación

La correlación mide el grado de asociación lineal y se calcula usando la función cor(), también se pueden representar gráficamente usando paquetes como corrplot

vars <- datos |> select(height, weight, income, age, education)

cor(vars, use = "complete")
               height      weight      income          age    education
height     1.00000000  0.46819603  0.21795196 -0.018027269  0.064838443
weight     0.46819603  1.00000000  0.05247293 -0.014656703 -0.045021628
income     0.21795196  0.05247293  1.00000000 -0.023703215  0.394288235
age       -0.01802727 -0.01465670 -0.02370322  1.000000000 -0.005998421
education  0.06483844 -0.04502163  0.39428823 -0.005998421  1.000000000
vars <- datos |> select(height, weight, income, age, education)

r <- cor(vars, use = "complete")
corrplot(r)

# vignette("corrplot-intro")

You can add R code

library(dplyr)
library(ggplot2)
g <- starwars |> 
  ggplot() +
  geom_point(aes(x = height, y = mass)) +
  theme_light()

And show the results aswell :)

g 

What about tables?

knitr::kable()

tab <- starwars |>
  tidyr::drop_na(species) |> 
  group_by(species) |>
  summarise(
    n = n(),
    mean_heigth = round(mean(height, na.rm = TRUE)),
    mean_mass = round(mean(mass, na.rm = TRUE))
  ) |> 
  slice_max(order_by = n, n = 4) 

knitr::kable(tab)
species n mean_heigth mean_mass
Human 35 177 83
Droid 6 131 70
Gungan 3 209 74
Kaminoan 2 221 88
Mirialan 2 168 53
Twi’lek 2 179 55
Wookiee 2 231 124
Zabrak 2 173 80

DT::datatable()

With the smaller class in the slide! Ex: ## slide name {.smaller}

gt::gt()

species n mean_heigth mean_mass
Human 35 177 83
Droid 6 131 70
Gungan 3 209 74
Kaminoan 2 221 88
Mirialan 2 168 53
Twi'lek 2 179 55
Wookiee 2 231 124
Zabrak 2 173 80

reactable::reactable()

Diagrams with Mermaid!

Read about how to create a diagram in this post by Mine Çetinkaya-Rundel.

Exporting into PDF

You can use the function pagedown::chrome_print() to print the HTML version into a PDF!

pagedown::chrome_print("path-to-file.html")